package com.lxmes.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lxmes.common.annotation.Excel;
import com.lxmes.common.core.domain.BaseEntity;

/**
 * 出库单对象 cc_chuku_info
 *
 * @author 张志煜
 * @date 2022-11-27
 */
public class CcChukuInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 公司名称 */
    @Excel(name = "公司名称")
    private String factoryName;

    /** 公司代码 */
    @Excel(name = "公司代码")
    private String factoryCode;

    /** 出库单号 */
    @Excel(name = "出库单号")
    private String danhao;

    /** 出库类型 */
    @Excel(name = "出库类型")
    private Long chukuType;

    /** 订单类型 */
    @Excel(name = "订单类型")
    private String orderType;

    /** 销售订单编号 */
    @Excel(name = "销售订单编号")
    private String orderDanhao;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractCode;
    /** 客户代码 */
    @Excel(name = "客户代码")
    private String clientCode;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String clientName;

    /** 合同数量 */
    @Excel(name = "合同数量")
    private BigDecimal contractNum;
    /** 计划号 */
    @Excel(name = "计划号")
    private String planId;

    /** 计划出库数量 */
    @Excel(name = "计划出库数量")
    private BigDecimal jhckNum;

    /** 实际出库数量 */
    @Excel(name = "实际出库数量")
    private BigDecimal ckNum;

    //库存可用数量
    private BigDecimal kyNum;

    /** 出库日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date chukuDate;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String itemName;
    /** 物料遍号 */
    @Excel(name = "物料遍号")
    private String itemCode;

    /** 物料号 */
    @Excel(name = "物料子遍号")
    private String itemId;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String spec;

    /** 物料单位 */
    @Excel(name = "物料单位")
    private String unit;

    /** 批次 */
    @Excel(name = "批次")
    private String lot;

    /** 供应商 */
    @Excel(name = "供应商")
    private Long supplyId;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String supplyName;

    /** 仓库编号 */
    @Excel(name = "仓库编号")
    private String stockId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String stockName;

    /** 库区编码 */
    @Excel(name = "库区编码")
    private String kuquCode;

    /** 库区名称 */
    @Excel(name = "库区名称")
    private String kuquName;

    /** 库位编码 */
    @Excel(name = "库位编码")
    private String kuweiCode;

    /** 价格 */
    @Excel(name = "价格")
    private BigDecimal price;

    /** 总价 */
    @Excel(name = "总价")
    private BigDecimal totalPrice;

    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal unitPrice;

    /** 物料类型id */
    @Excel(name = "物料类型id")
    private String classId;

    /** 物料类型 */
    @Excel(name = "物料类型")
    private String className;

    /** 托管标识 */
    @Excel(name = "托管标识")
    private String isTuoguan;

    /** 质量状态 */
    @Excel(name = "质量状态")
    private String qualityState;

    /** 制造商编码 */
    @Excel(name = "制造商编码")
    private String makerCode;

    /** 制造商名称 */
    @Excel(name = "制造商名称")
    private String makerName;

    /** 尺寸 */
    @Excel(name = "尺寸")
    private BigDecimal size;

    /** 单重 */
    @Excel(name = "单重")
    private BigDecimal singleWeight;

    /** 总重 */
    @Excel(name = "总重")
    private BigDecimal totalWeight;

    /** 使用状态 */
    @Excel(name = "使用状态")
    private String useState;

    /** 颜色 */
    @Excel(name = "颜色")
    private String color;

    /** 花纹 */
    @Excel(name = "花纹")
    private String figure;

    /** 材质 */
    @Excel(name = "材质")
    private String caizhi;

    /** 条形码 */
    @Excel(name = "条形码")
    private String txm;

    /** 托盘码 */
    @Excel(name = "托盘码")
    private String tpm;

    /** 配送条形码 */
    @Excel(name = "配送条形码")
    private String pstxm;

    /** 配送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "配送时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date psTime;

    /** 组别 */
    @Excel(name = "组别")
    private String zubie;

    /** 拣货人 */
    @Excel(name = "拣货人")
    private String pickingName;

    /** 拣货工段位 */
    @Excel(name = "拣货工段位")
    private String pickingSegment;

    /** 拣货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "拣货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pickingTime;

    /** 条码打印次数 */
    @Excel(name = "条码打印次数")
    private Long txmPrintNum;

    /** 出库单打印次数 */
    @Excel(name = "出库单打印次数")
    private Long ckPrintNum;

    /** 器具号 */
    @Excel(name = "器具号")
    private String utensilNo;

    /** SAP凭证 */
    @Excel(name = "SAP凭证")
    private String sapProof;

    /** 状态 */
    @Excel(name = "状态")
    private Long ckState;

    /** 接收入库回写状态 */
    @Excel(name = "接收入库回写状态")
    private String zzhxState;

    /** 接收入时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "接收入时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date zzrkTime;

    /** 接收入库备注 */
    @Excel(name = "接收入库备注")
    private String zzrkRemark;

    /** 接收入库人 */
    @Excel(name = "接收入库人")
    private String zzrkName;

    /** 接收入库数 */
    @Excel(name = "接收入库数")
    private BigDecimal zzrkNum;
    /** 接收单位 */
    @Excel(name = "接收单位")
    private String receivingUnit;
    /** 接收仓库 */
    @Excel(name = "接收仓库")
    private String receivingStockId;

    private List<CcChukuInfo> infoList;
    //记录出库的库存
    private Long  stockinfoId;
    /** 结算月份 */
    @JsonFormat(pattern = "yyyy-MM")
    private String jiesuanMonth;
    /** 结算状态 */
    private String jiesuanState;
    //查询参数id
    private Long[] ckIds;
    private String startDate;
    private String endDate;

    public String getJiesuanMonth() {
        return jiesuanMonth;
    }

    public void setJiesuanMonth(String jiesuanMonth) {
        this.jiesuanMonth = jiesuanMonth;
    }

    public String getJiesuanState() {
        return jiesuanState;
    }

    public void setJiesuanState(String jiesuanState) {
        this.jiesuanState = jiesuanState;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public Long[] getCkIds() {
        return ckIds;
    }

    public void setCkIds(Long[] ckIds) {
        this.ckIds = ckIds;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setFactoryName(String factoryName)
    {
        this.factoryName = factoryName;
    }

    public String getFactoryName()
    {
        return factoryName;
    }
    public void setFactoryCode(String factoryCode)
    {
        this.factoryCode = factoryCode;
    }

    public String getFactoryCode()
    {
        return factoryCode;
    }
    public void setDanhao(String danhao)
    {
        this.danhao = danhao;
    }

    public String getDanhao()
    {
        return danhao;
    }
    public void setChukuType(Long chukuType)
    {
        this.chukuType = chukuType;
    }

    public Long getChukuType()
    {
        return chukuType;
    }
    public void setOrderType(String orderType)
    {
        this.orderType = orderType;
    }

    public String getOrderType()
    {
        return orderType;
    }
    public void setOrderDanhao(String orderDanhao)
    {
        this.orderDanhao = orderDanhao;
    }

    public String getOrderDanhao()
    {
        return orderDanhao;
    }
    public void setContractCode(String contractCode)
    {
        this.contractCode = contractCode;
    }

    public String getContractCode()
    {
        return contractCode;
    }
    public void setContractNum(BigDecimal contractNum)
    {
        this.contractNum = contractNum;
    }

    public BigDecimal getContractNum()
    {
        return contractNum;
    }
    public void setJhckNum(BigDecimal jhckNum)
    {
        this.jhckNum = jhckNum;
    }

    public BigDecimal getJhckNum()
    {
        return jhckNum;
    }
    public void setCkNum(BigDecimal ckNum)
    {
        this.ckNum = ckNum;
    }

    public BigDecimal getCkNum()
    {
        return ckNum;
    }
    public void setChukuDate(Date chukuDate)
    {
        this.chukuDate = chukuDate;
    }

    public Date getChukuDate()
    {
        return chukuDate;
    }
    public void setItemName(String itemName)
    {
        this.itemName = itemName;
    }

    public String getItemName()
    {
        return itemName;
    }
    public void setItemId(String itemId)
    {
        this.itemId = itemId;
    }

    public String getItemId()
    {
        return itemId;
    }
    public void setItemCode(String itemCode)
    {
        this.itemCode = itemCode;
    }

    public String getItemCode()
    {
        return itemCode;
    }
    public void setSpec(String spec)
    {
        this.spec = spec;
    }

    public String getSpec()
    {
        return spec;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }
    public void setLot(String lot)
    {
        this.lot = lot;
    }

    public String getLot()
    {
        return lot;
    }
    public void setSupplyId(Long supplyId)
    {
        this.supplyId = supplyId;
    }

    public Long getSupplyId()
    {
        return supplyId;
    }
    public void setSupplyName(String supplyName)
    {
        this.supplyName = supplyName;
    }

    public String getSupplyName()
    {
        return supplyName;
    }
    public void setStockId(String stockId)
    {
        this.stockId = stockId;
    }

    public String getStockId()
    {
        return stockId;
    }
    public void setStockName(String stockName)
    {
        this.stockName = stockName;
    }

    public String getStockName()
    {
        return stockName;
    }
    public void setKuquCode(String kuquCode)
    {
        this.kuquCode = kuquCode;
    }

    public String getKuquCode()
    {
        return kuquCode;
    }
    public void setKuquName(String kuquName)
    {
        this.kuquName = kuquName;
    }

    public String getKuquName()
    {
        return kuquName;
    }
    public void setKuweiCode(String kuweiCode)
    {
        this.kuweiCode = kuweiCode;
    }

    public String getKuweiCode()
    {
        return kuweiCode;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setTotalPrice(BigDecimal totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice()
    {
        return totalPrice;
    }
    public void setUnitPrice(BigDecimal unitPrice)
    {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getUnitPrice()
    {
        return unitPrice;
    }
    public void setClassId(String classId)
    {
        this.classId = classId;
    }

    public String getClassId()
    {
        return classId;
    }
    public void setClassName(String className)
    {
        this.className = className;
    }

    public String getClassName()
    {
        return className;
    }
    public void setIsTuoguan(String isTuoguan)
    {
        this.isTuoguan = isTuoguan;
    }

    public String getIsTuoguan()
    {
        return isTuoguan;
    }
    public void setQualityState(String qualityState)
    {
        this.qualityState = qualityState;
    }

    public String getQualityState()
    {
        return qualityState;
    }
    public void setMakerCode(String makerCode)
    {
        this.makerCode = makerCode;
    }

    public String getMakerCode()
    {
        return makerCode;
    }
    public void setMakerName(String makerName)
    {
        this.makerName = makerName;
    }

    public String getMakerName()
    {
        return makerName;
    }
    public void setSize(BigDecimal size)
    {
        this.size = size;
    }

    public BigDecimal getSize()
    {
        return size;
    }
    public void setSingleWeight(BigDecimal singleWeight)
    {
        this.singleWeight = singleWeight;
    }

    public BigDecimal getSingleWeight()
    {
        return singleWeight;
    }
    public void setTotalWeight(BigDecimal totalWeight)
    {
        this.totalWeight = totalWeight;
    }

    public BigDecimal getTotalWeight()
    {
        return totalWeight;
    }
    public void setUseState(String useState)
    {
        this.useState = useState;
    }

    public String getUseState()
    {
        return useState;
    }
    public void setColor(String color)
    {
        this.color = color;
    }

    public String getColor()
    {
        return color;
    }
    public void setFigure(String figure)
    {
        this.figure = figure;
    }

    public String getFigure()
    {
        return figure;
    }
    public void setCaizhi(String caizhi)
    {
        this.caizhi = caizhi;
    }

    public String getCaizhi()
    {
        return caizhi;
    }
    public void setTxm(String txm)
    {
        this.txm = txm;
    }

    public String getTxm()
    {
        return txm;
    }
    public void setTpm(String tpm)
    {
        this.tpm = tpm;
    }

    public String getTpm()
    {
        return tpm;
    }
    public void setPstxm(String pstxm)
    {
        this.pstxm = pstxm;
    }

    public String getPstxm()
    {
        return pstxm;
    }
    public void setPsTime(Date psTime)
    {
        this.psTime = psTime;
    }

    public Date getPsTime()
    {
        return psTime;
    }
    public void setZubie(String zubie)
    {
        this.zubie = zubie;
    }

    public String getZubie()
    {
        return zubie;
    }
    public void setPickingName(String pickingName)
    {
        this.pickingName = pickingName;
    }

    public String getPickingName()
    {
        return pickingName;
    }
    public void setPickingSegment(String pickingSegment)
    {
        this.pickingSegment = pickingSegment;
    }

    public String getPickingSegment()
    {
        return pickingSegment;
    }
    public void setPickingTime(Date pickingTime)
    {
        this.pickingTime = pickingTime;
    }

    public Date getPickingTime()
    {
        return pickingTime;
    }
    public void setTxmPrintNum(Long txmPrintNum)
    {
        this.txmPrintNum = txmPrintNum;
    }

    public Long getTxmPrintNum()
    {
        return txmPrintNum;
    }
    public void setCkPrintNum(Long ckPrintNum)
    {
        this.ckPrintNum = ckPrintNum;
    }

    public Long getCkPrintNum()
    {
        return ckPrintNum;
    }
    public void setUtensilNo(String utensilNo)
    {
        this.utensilNo = utensilNo;
    }

    public String getUtensilNo()
    {
        return utensilNo;
    }
    public void setSapProof(String sapProof)
    {
        this.sapProof = sapProof;
    }

    public String getSapProof()
    {
        return sapProof;
    }

    public Long getCkState() {
        return ckState;
    }

    public void setCkState(Long ckState) {
        this.ckState = ckState;
    }
    public void setZzhxState(String zzhxState)
    {
        this.zzhxState = zzhxState;
    }

    public String getZzhxState()
    {
        return zzhxState;
    }
    public void setZzrkTime(Date zzrkTime)
    {
        this.zzrkTime = zzrkTime;
    }

    public Date getZzrkTime()
    {
        return zzrkTime;
    }
    public void setZzrkRemark(String zzrkRemark)
    {
        this.zzrkRemark = zzrkRemark;
    }

    public String getZzrkRemark()
    {
        return zzrkRemark;
    }
    public void setZzrkName(String zzrkName)
    {
        this.zzrkName = zzrkName;
    }

    public String getZzrkName()
    {
        return zzrkName;
    }
    public void setZzrkNum(BigDecimal zzrkNum)
    {
        this.zzrkNum = zzrkNum;
    }

    public BigDecimal getZzrkNum()
    {
        return zzrkNum;
    }

    public BigDecimal getKyNum() {
        return kyNum;
    }

    public void setKyNum(BigDecimal kyNum) {
        this.kyNum = kyNum;
    }

    public String getPlanId() {
        return planId;
    }

    public void setPlanId(String planId) {
        this.planId = planId;
    }

    public List<CcChukuInfo> getInfoList() {
        return infoList;
    }
    //记录出库的库存
    public Long getStockinfoId() {
        return stockinfoId;
    }

    public void setStockinfoId(Long stockinfoId) {
        this.stockinfoId = stockinfoId;
    }

    public void setInfoList(List<CcChukuInfo> infoList) {
        this.infoList = infoList;
    }

    public String getClientCode() {
        return clientCode;
    }

    public void setClientCode(String clientCode) {
        this.clientCode = clientCode;
    }

    public String getClientName() {
        return clientName;
    }

    public void setClientName(String clientName) {
        this.clientName = clientName;
    }

    public String getReceivingUnit() {
        return receivingUnit;
    }

    public void setReceivingUnit(String receivingUnit) {
        this.receivingUnit = receivingUnit;
    }

    public String getReceivingStockId() {
        return receivingStockId;
    }

    public void setReceivingStockId(String receivingStockId) {
        this.receivingStockId = receivingStockId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("factoryName", getFactoryName())
            .append("factoryCode", getFactoryCode())
            .append("danhao", getDanhao())
            .append("chukuType", getChukuType())
            .append("orderType", getOrderType())
            .append("orderDanhao", getOrderDanhao())
            .append("contractCode", getContractCode())
            .append("contractNum", getContractNum())
            .append("jhckNum", getJhckNum())
            .append("ckNum", getCkNum())
            .append("chukuDate", getChukuDate())
            .append("itemName", getItemName())
            .append("itemId", getItemId())
            .append("itemCode", getItemCode())
            .append("spec", getSpec())
            .append("unit", getUnit())
            .append("lot", getLot())
            .append("supplyId", getSupplyId())
            .append("supplyName", getSupplyName())
            .append("stockId", getStockId())
            .append("stockName", getStockName())
            .append("kuquCode", getKuquCode())
            .append("kuquName", getKuquName())
            .append("kuweiCode", getKuweiCode())
            .append("price", getPrice())
            .append("totalPrice", getTotalPrice())
            .append("unitPrice", getUnitPrice())
            .append("classId", getClassId())
            .append("className", getClassName())
            .append("isTuoguan", getIsTuoguan())
            .append("qualityState", getQualityState())
            .append("makerCode", getMakerCode())
            .append("makerName", getMakerName())
            .append("size", getSize())
            .append("singleWeight", getSingleWeight())
            .append("totalWeight", getTotalWeight())
            .append("useState", getUseState())
            .append("color", getColor())
            .append("figure", getFigure())
            .append("caizhi", getCaizhi())
            .append("txm", getTxm())
            .append("tpm", getTpm())
            .append("pstxm", getPstxm())
            .append("psTime", getPsTime())
            .append("zubie", getZubie())
            .append("pickingName", getPickingName())
            .append("pickingSegment", getPickingSegment())
            .append("pickingTime", getPickingTime())
            .append("txmPrintNum", getTxmPrintNum())
            .append("ckPrintNum", getCkPrintNum())
            .append("utensilNo", getUtensilNo())
            .append("sapProof", getSapProof())
            .append("ckState", getCkState())
            .append("zzhxState", getZzhxState())
            .append("zzrkTime", getZzrkTime())
            .append("zzrkRemark", getZzrkRemark())
            .append("zzrkName", getZzrkName())
            .append("zzrkNum", getZzrkNum())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
